yadm 配置文件管理

✍️ 正文

新系统安装

安装 brew

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

在临时文件夹中安装 yadm;将 dotfile 克隆到本地;初始化安装系统;安装系统所有包;完成一键搭建系统环境。

curl -sL https://raw.githubusercontent.com/Elepv/dotfiles/master/pre_bootstrap.sh | bash

基础配置

安装:

brew install yadm

初始化:

yadm init
yadm add <important file>
yadm commit -m "addd file"

连接远程仓库和推送文件到仓库:

yadm remote add origin [email protected]:Elepv/dotfiles.git
yadm push -u origin master
# yadm push -u origin <local branch>:<remote branch>

将远程仓库克隆到本地:

yadm clone [email protected]:Elepv/dotfiles.git

# 查看现在本地文件和仓库中文件的差异
yadm status

# 插件目前仓库连接的远程仓库地址
yadm remote -v

对比和将仓库中的文件应用到本地:

yadm status
yadm list

# 在有远程仓库连接时,获取远程仓库内容
yadm fetch

# 查看文件具体的差异
yadm diff filename

# 把本地文件加入到仓库,并提交
yadm add /path/to/filename
yadm commit --amend # 修改上次提交信息
yadm commit -C HEAD # 使用上次提交的信息

# 将仓库中的文件应用到本地
yadm checkout -- /path/to/filename

# 从暂存区移除跟踪文件
git rm –cached filename

# 从当前分支和文件系统中移除文件
git rm filename

如果远程仓库中的配置文件与本地冲突,则需要先解决冲突,重新提交后,再 pull 到本地。

初始化安装

对隐私文件加密保存

此功能需要安装 gpgopenssl 命令

创建需要加密的清单文件,包括需加密的 文件和文件夹列表

touch .config/yadm/encrypt
vi .config/yadm/encrypt

将需要加密的 文件和文件夹列表 加入到清单文件中

.ssh/*

使用 openssl 取代 gpg 作为加密、解密的工具

yadm config yadm.cipher openssl

加密和解密

#加密
yadm encrypt

# 解密
yadm decrypt

识别不同系统,应用对应的配置

上传配置文件时,指定标签,如:

# 加入文件时,带上标签
yadm add .bashrc##os.Darwin,hostname.vMac-mini.local

# 提交更改
yadm commit -m "Add macOS specific config file"

# 推送到远程仓库
yadm push

# 从远程仓库获取配置文件
yadm pull
# 或者
yadm clone URL_TO_YOUR_REPOSITORY

# 根据条件,应用符号链接
yadm alt

# 也可以设置自动根据条件应用符号链接
yadm config yadm.auto-alt true


📌 大纲

📝 主题描述

🗂️ 目标

🎯 目标和任务分解

🧠 思考的维度

🎉 总结

📖 参考文献